chore: sync upstream through cc0438d - #195
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Pull request overview
Ports an upstream compatibility adjustment through cc0438d while keeping the stable Clojure public API unchanged. The main functional change is to apply MCP server configuration during session.resume (no follow-up session.mcp.reloadWithConfig), along with advancing the pinned runtime schema to 1.0.81-6 and refreshing the exact-pin certification evidence/tests.
Changes:
- Removed
session.mcp.reloadWithConfigfrom resume/join flows; MCP config is now sent only asmcpServersonsession.resume. - Bumped the runtime schema pin to
1.0.81-6and updated schema/docs/changelog accordingly. - Added a new stable-sync certification report + test for the
cc0438dpin, keeping optional upstream validation gated byCOPILOT_UPSTREAM_VALIDATION=true.
Show a summary per file
| File | Description |
|---|---|
| test/resources/stable_upstream_delta_cc0438d.edn | New exact-pin delta/evidence report for upstream cc0438d. |
| test/github/copilot_sdk/integration/tools_config_test.clj | Updates integration assertions to ensure no reload RPC is sent and MCP config is embedded in session.resume. |
| test/github/copilot_sdk/integration/stable_sync_ea41d_test.clj | Relaxes prior pin assertions now superseded by the new certification test. |
| test/github/copilot_sdk/integration/stable_sync_cc0438d_test.clj | New certification test validating the cc0438d evidence and schema pin (optionally against a resolved upstream checkout). |
| src/github/copilot_sdk/client.clj | Removes resume-time reload logic and related timeout helpers; resume applies MCP config directly. |
| src/github/copilot_sdk.clj | Updates public docs for resume-session MCP behavior to match the new wire contract. |
| schemas/README.md | Updates the documented pinned schema version to 1.0.81-6. |
| schemas/api.schema.json | Updates schema content for account.login + permission source enums per new pin. |
| examples/manual_tool_resume.clj | Restricts tool availability to the example’s custom tool (avoids host MCP tool prompt-budget interference). |
| doc/reference/API.md | Updates resume-session docs to describe resume-only MCP configuration semantics (omit vs empty map). |
| doc/mcp/overview.md | Updates MCP docs to “Resume-Time Configuration” semantics (no reload RPC). |
| doc/api/overview.html | Regenerated API docs reflecting updated MCP resume behavior. |
| doc/api/github.copilot-sdk.html | Regenerated API docs reflecting updated resume-session docstring. |
| doc/api/github.copilot-sdk.client.html | Regenerated API docs reflecting updated resume-session option description. |
| doc/api/API.html | Regenerated API reference reflecting updated resume MCP semantics. |
| CHANGELOG.md | Updates Unreleased entries for the new upstream commit and schema pin; notes MCP resume behavior change and example fix. |
| .github/skills/update-upstream/SKILL.md | Documents the optional COPILOT_UPSTREAM_VALIDATION=true bb test gate for exact-pin validation. |
| .copilot-schema-version | Bumps runtime schema pin to 1.0.81-6. |
Review details
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
- Files reviewed: 18/18 changed files
- Comments generated: 1
- Review effort level: Lite
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
There was a problem hiding this comment.
Review details
Suppressed comments (2)
Previously missed (2) — in code that hasn't changed since the last review.
test/github/copilot_sdk/integration/tools_config_test.clj:118
- The test derives
resume-requestwithsome, but if the hook never observes asession.resumecall the failure will show up later as a confusing map mismatch. Add an explicit assertion that the resume request was captured, and bind the params directly to avoid(second resume-request)indirection.
resume-request (some #(when (= "session.resume" (first %)) %) @requests)
reloads (filter #(= "session.mcp.reloadWithConfig" (first %)) @requests)]
(is (not (instance? Throwable result)))
(is (= {:sessionId session-id
:mcpServers
{:srv {:type "http"
:url "https://mcp.async.test"
:tools ["*"]}}}
(select-keys (second resume-request) [:sessionId :mcpServers])))
test/github/copilot_sdk/integration/stable_sync_cc0438d_test.clj:108
- This test parses
schemas/api.schema.jsonvia(slurp ...)+json/read-str, which reads the entire (large) schema into a string before parsing. Usingjson/readon anio/readeravoids the extra copy and reduces peak memory during test runs.
(let [{:keys [schema version]} (read-report)
api-schema (json/read-str (slurp "schemas/api.schema.json"))
definitions (get api-schema "definitions")
- Files reviewed: 18/18 changed files
- Comments generated: 0 new
- Review effort level: Lite
Syncs the Clojure SDK through upstream commit
cc0438d66e3e68c333537cb935d9425d4e4ed8d5. The stable public API remains unchanged; this ports the Node runtime compatibility behavior from github/copilot-sdk#2367 and advances the runtime schema pin to1.0.81-6.Implementation notes
mcpServersexclusively withsession.resume; omitted input remains absent and an explicit empty map remains an empty wire object. Nosession.mcp.reloadWithConfigfollow-up is issued.COPILOT_UPSTREAM_VALIDATION=trueadditionally verifies the committed inventory and source symbols against the resolved local upstream checkout.This intentionally does not change the SDK version or publish a release.